const path = require('path');
const merge = require('webpack-merge');
// 导入基础配置文件
const base = require('./webpack.base.config.js');

// 自动清理dist目录下没有被引用的文件
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const cleanPlugin = new CleanWebpackPlugin();

// 导入copy-webpack-plugin插件
const CopyWebpackPlugin = require('copy-webpack-plugin');
const copyPlugin = new CopyWebpackPlugin([{
    from: path.join(__dirname, '../static/**/*.*'),
    // to: './[path][name].[contenthash].[ext]'
    to: './'
}])

module.exports = merge(base, {
    mode: 'production',
    // 针对每个js文件生成对应的map源映射文件
    // 使用 Source Map 可以在 FF 的调试器、 Chrome 的 Sources 和 VSCode 中给压缩前的文件下断点，
    // 也可以方便定位错误发生的位置（定位到压缩前的文件）。
    // Source Map 可以将编译、语法转换或压缩后的代码与源码进行对应，从而方便调试
    // devtool: 'source-map',
    output:{
        // 生产环境下, 静态资源最终的存放路径, 在html中引入js中会自动拼接该路径
        publicPath:'/public/js'
    },
    plugins: [cleanPlugin, copyPlugin]
})